Я знаю некоторую разницу между char * и char []. char x[] = "xxxx"
Является массивом символов; char *y = "xxxx"
- указатель на строку литерала (const); И x[4]=='\0'
, и *(y+4) == '\0'
тоже. Итак, почему sizeof(x)==5
и sizeof(y)==4
?Разница в размере между char * x и char x []
ответ
Размер массива - это размер, который занимает массив. То же, что и sizeof("xxxx")
.
Размер указателя - это размер, который сам указатель занимает. То же, что и sizeof(char*)
.
char x[] = "xxxx"
- это массив размером 5, содержащий x x x x и \ 0.
char *y = "xxxx"
- указатель на строку. Это длина 4 байта, потому что это длина указателя, а не строка.
x
действительно "xxxx\0"
. Терминатор nul в конце строки дает массив пять байтов.
Однако sizeof(y)
запрашивает размер указателя, который, как оказалось, составляет четыре байта в вашем случае. То, что указывает y
, не имеет значения для sizeof()
.
Для char *x
, х является указателем, который означает, что вы можете изменить указываемую позицию по x++
, x+=2
и т.д. char x[]
представляет собой массив, который является постоянным указателем, так что вы не можете сделать х ++
- 1. Разница между char * x и char * x [80]?
- 2. В чем разница между char * x, y, z; char * x, y, z; char (*) x, y, z ;?
- 3. Разница между char * и char []
- 4. Разница между char ** и char [] []
- 5. Разница между char и char [1]
- 6. В чем разница между alloca (n) и char x [n]?
- 7. В чем разница между (char *) и char *?
- 8. Char x [50] и Char x [100] Выход
- 9. Как const char ** x и const char * x [] похожи?
- 10. Разница между char [] и char * in C
- 11. Разница между char [] и char * in C
- 12. Разница между char * и const char *?
- 13. Разница между неподписанными символами char и char
- 14. Разница между char var [] и char var [] []
- 15. Разница между const char [] и char []
- 16. разница между char * и char [] с strcpy()
- 17. Разница между char * var; и char * var ;?
- 18. Разница между char * s = new char [] и char s [20]?
- 19. Structs 'const char * x' vs 'char x [30]'
- 20. Разница между char [] и char * при вызове функции
- 21. Что означает «char x []»?
- 22. разница между char * и string
- 23. Разница между char * и int *
- 24. Разница между char, char * внутри Связанные списки
- 25. В чем разница между char [] и char [10] в C++?
- 26. В чем разница между char [] и char * в struct?
- 27. В чем разница между char и char * в C++?
- 28. В чем разница между char * s и char * s?
- 29. Какая разница между char ** и char * в этом примере?
- 30. В чем разница между char * name и char * name?
определить х как char x [] = "xxxxxxxx". TH задайте себе тот же вопрос ... Подсказка: завершение '\ 0' –
@MitchWheat Я думаю, он понимает, что x имеет пять символов. Проблема в том, что y является указателем, поэтому sizeof (y) = 4 (байты). – mgiuffrida
@eli: Да, я это знаю. Но я не хотел давать прямой ответ. Научите человека ловить рыбу и все это .... –