#include <stdio.h>
void byValue ( int a );
void byPointer ( int * b );
void byValueAgain ( int c );
//void byRef( int &d );// в С нет.
int main( void ) {
int x = 3;// будет зарезервирована память размером int под значение 3 под именем x.
int * xPtr;
printf ("%p\n", &x);//0028FF3C
printf ("%p\n", &xPtr);//0028FF38
byValue ( x );//0028FF20
byPointer ( &x );//0028FF20
byValueAgain ( x );//0028FF20
//beRef( x );// в С нет. Но было бы тоже 0028FF20
}
//Написать параметр функции тоже самое, что определить переменную в main.
void byValue ( int a ){ // будет зарезервирована память размером int под значение x под именем a (тип данных int). Произойдет копирование x.
printf ("%p\n", &a);
a = a * 2;
}
void byPointer ( int * b ){// будет зарезервирована память размером длины адреса в системе под значение адреса x под именем b (тип данных int *). Произойдет копирование адреса x.
printf ("%p\n", &b );
*b = *b * 2;// с помощью оператора * будет выполнен доступ по адресу к x и его непосредственное изменению.
}
void byValueAgain ( int c ){
printf ("%p\n", &c );
}
//void byRef ( int &d ){// будет зарезервирована память размером длины адреса в системе под значение адреса x под именем d (тип данных int &).
// printf ("%p\n", &d);
// d = d * 2;
//}
#include <stdio.h>
int main( void )
{
printf("%s\n", "Memory Value Symbol" );
char string3[] = "Good Bye";// имя массива можно использовать как указатель, но оно им не является.
char * string4 = "Hello";
printf("%p %p \n", &string4, string4 );
printf("%p %p \n", string4+0, *(string4+0) );// равнозначно &string4[0], string4[0]
for (int i = 0; *(string4+i) != '\0'; ++i)
{
printf("%p %p %c\n", (string4+i), *(string4+i), string4[i] );// 2 нотации для примера.
}
puts("");
//&string3 нежелательно и только для примера, так может только printf; нужно string3 или &string3[0] .
printf("%p %p \n", &string3, string3 );
printf("%p %p \n", string3+0, *(string3+0) );// равнозначно &string3[0], string3[0]
for (int i = 0; *(string3+i) != '\0'; ++i)
{
printf("%p %p %c\n", (string3+i), *(string3+i), string3[i] );// 2 нотации для примера.
}
}
Memory Value Symbol
0028FEEC 0040B07D
0040B07D 00000048
0040B07D 00000048 H
0040B07E 00000065 e
0040B07F 0000006C l
0040B080 0000006C l
0040B081 0000006F o
0028FEF3 0028FEF3
0028FEF3 00000047
0028FEF3 00000047 G
0028FEF4 0000006F o
0028FEF5 0000006F o
0028FEF6 00000064 d
0028FEF7 00000020
0028FEF8 00000042 B
0028FEF9 00000079 y
0028FEFA 00000065 e
249 webm audio only DASH audio 60k , opus @ 50k, 15.31MiB
250 webm audio only DASH audio 75k , opus @ 70k, 18.50MiB
171 webm audio only DASH audio 101k , vorbis@128k, 28.17MiB
140 m4a audio only DASH audio 131k , m4a_dash container, mp4a.40.2@128k, 39.23MiB
251 webm audio only DASH audio 150k , opus @160k, 35.69MiB
160 mp4 256x144 144p 69k , avc1.4d400c, 25fps, video only, 10.11MiB
278 webm 256x144 144p 96k , webm container, vp9, 25fps, video only, 23.69MiB
242 webm 426x240 240p 147k , vp9, 25fps, video only, 27.68MiB
133 mp4 426x240 240p 159k , avc1.4d4015, 25fps, video only, 22.17MiB
134 mp4 640x360 360p 245k , avc1.4d401e, 25fps, video only, 34.34MiB
243 webm 640x360 360p 306k , vp9, 25fps, video only, 60.22MiB
135 mp4 854x480 480p 526k , avc1.4d401e, 25fps, video only, 80.01MiB
244 webm 854x480 480p 605k , vp9, 25fps, video only, 124.94MiB
136 mp4 1280x720 720p 1282k , avc1.4d401f, 25fps, video only, 233.52MiB
247 webm 1280x720 720p 1510k , vp9, 25fps, video only, 397.51MiB
298 mp4 1280x720 720p50 2240k , avc1.4d4020, 50fps, video only, 588.94MiB
302 webm 1280x720 720p50 2670k , vp9, 50fps, video only, 787.49MiB
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k, 21.31MiB
36 3gp 320x180 small , mp4v.20.3, mp4a.40.2, 67.35MiB
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k, 111.44MiB
43 webm 640x360 medium , vp8.0, vorbis@128k, 185.11MiB
22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)