Я наткнулся на этот странный результат, когда возился с массивами C:
char s[100] = "hello";
if(s == &s[0]) printf("true. ");
if(s == &s) printf("true.");
// output: true. true.
Я знаю, что s
содержит ячейку памяти первого элемента, но есть ли способ найти адрес s
(адрес указателя, который указывает на первый элемент)? Почему &s
равно s
? Не то чтобы это было полезно, но я хотел бы знать, что происходит под капотом.
Я не уверен, что разные компиляторы реализуют это по-разному, но я использую gcc.