Advertisement
dllbridge

Untitled

Dec 6th, 2024
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.34 KB | None | 0 0
  1.  
  2. #include  <stdio.h>
  3.  
  4.  
  5. void foo(int *p);
  6.  
  7. ////////////////////////////////////////////  
  8. int main()
  9. {
  10.     int   nArr[10] = { 2,  0,  4,    77};
  11.     int   nAr [10] = {12, 10, 34, 71117};    
  12.     foo(nArr);
  13.     foo(nAr );
  14. }
  15.  
  16.  
  17.  
  18.  
  19. ////////////////////////////////////////////
  20. void foo(int *p)
  21. {
  22.      
  23.     for(int i = 0; i < 10; i++)
  24.     {
  25.            
  26.         printf("%d, ",  p[i]);  
  27.     }    
  28.    
  29.     printf(" \n");
  30. }
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. /*
  38.  
  39.  
  40. #include  <stdio.h>
  41.  
  42.  
  43. void foo(int*);
  44.  
  45. ////////////////////////////////////////////  
  46. int main()
  47. {
  48.     int   nArr[10] = {2, 0, 4, 77};
  49.    
  50.     foo(&nArr[0]);
  51.  
  52. }
  53.  
  54.  
  55.  
  56.  
  57. ////////////////////////////////////////////
  58. void foo(int *p)
  59. {
  60.      
  61.     for(int i = 0; i < 10; i++)
  62.     {
  63.            
  64.         printf("  = %d\n",  p[i]);  
  65.     }    
  66. }
  67.  
  68. */
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. /*
  92.  
  93. #include  <stdio.h>
  94.  
  95.  
  96. ////////////////////////////////////////////  
  97. int main()
  98. {
  99.  
  100.  
  101.  
  102.     int  n3 = 87;
  103.  
  104.     int  *p;  
  105.  
  106.  
  107.     printf("address of n3 = %d\n", &n3);
  108.    
  109.     p = &n3;
  110.    
  111.     printf(" p = %d\n",  p);
  112.     printf("*p = %d\n", *p);    
  113. }
  114.  
  115.  
  116.  
  117. */
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140. /*
  141.  
  142. #include  <stdio.h>
  143.  
  144.  
  145. ////////////////////////////////////////////  
  146. int main()
  147. {
  148.  
  149.   __int8   n  =  123;
  150.  
  151.   __int32  n2 = 4444;
  152.  
  153.     int  n3 ;
  154.  
  155.     printf("size of n2 = %d\n", sizeof(int) );
  156. }
  157.  
  158. */
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184. /*
  185.  
  186. #include  <stdio.h>
  187.  
  188.  
  189. ////////////////////////////////////////////   printf("++++ cn = %d \n", cn);
  190. int main()
  191. {
  192.  
  193.   unsigned __int8 cn = 'S';
  194.    
  195.  
  196.    
  197.     int   i =   1;
  198.  
  199. L_01: printf("cn = %c = %d\n", cn, cn);
  200.       cn ++;
  201.       i  ++;
  202.  
  203.       if( i < 12 ) goto L_01;
  204.      
  205. }
  206.  
  207.  
  208. */
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. /*
  217. #include  <stdio.h>
  218.  
  219.  
  220. ////////////////////////////////////////////   printf("++++ cn = %d \n", cn);
  221. int main()
  222. {
  223.  
  224.   unsigned __int8 cn = 250;
  225.    
  226.  
  227.    
  228.     int   i =   1;
  229.  
  230. L_01: printf("cn = %4d \n", cn);
  231.       cn ++;
  232.       i  ++;
  233.  
  234.       if( i < 12 ) goto L_01;
  235.      
  236. }
  237.  
  238.  
  239.  
  240.  
  241. */
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257. /* Задание:
  258. 1) Создайте переменную char cn = 123;
  259. 2) В цикле печатайте её содержимое (как число %d) и каждый раз увеличивайте на 1
  260. 3) На какой по счёту итерации цикла значение переменной cn резко изменит своё значение? И почему?
  261. */
  262. /*
  263.  
  264.  
  265. #include  <stdio.h>
  266.  
  267.  
  268. ////////////////////////////////////////////
  269. int main()
  270. {
  271.  
  272.     char cn = 123;
  273.     int   i =   1;
  274.  
  275. L_01: printf("cn = %d \n", cn);
  276.       cn ++;
  277.       i  ++;
  278.  
  279.       if( i < 12 ) goto L_01;
  280.      
  281. }
  282.  
  283.  
  284.  
  285. */
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292. /*
  293. #include  <stdio.h>
  294.  
  295.  
  296. ////////////////////////////////////////////
  297. int main()
  298. {
  299.  
  300.     char cn = 123;
  301.     int   i =   1;
  302.  
  303. L_01: printf("cn = %d \n", cn);
  304.       cn ++;
  305.       i  ++;
  306.  
  307.       if( cn == -120 ) goto L_02;
  308.       else             goto L_01;
  309.      
  310. L_02: return 0;      
  311.  
  312. }
  313.  
  314.  
  315.  
  316. */
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324. /* ответ на вопрос:return 0;
  325.  
  326. уже на пятом цикле значение переменной резко принимает отрицательное значение.
  327. хотя программа ПРИБАВЛЯЕТ единицу и больше ничего. Цифры идут по убыванию (более подробно можно рассмотреть если
  328. поменять условие i < n, где n число принимающее любое значение)
  329. собственно, вся фишка в том, что тиип char обычно занимает 1 байт (8 бит), что позволяет хранить числа от -128 до 127
  330. (прочла в интернете). Вот и вся магия
  331. когда мы выходим за пределы значения то компилятор просто прогоняет это число обратно, начиная с меньшего -128
  332. и прибавляя к нему единицу до следующего числа 127. и так покругу :)
  333. скорее всего в этом и причина
  334.  
  335. но почему это происходит именно в формате %d - я без понятия.
  336.  
  337. */
  338.  
  339.  
  340.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement