Я думал, что у меня было рудиментарное понимание их, но, видимо, у меня их нет.Попытка лучше понять указатели
#include <stdio.h>
void f(int *x, char *name)
{
*x = 4;
*name = "stan";
}
int main()
{
int y = 10;
char name = "bob";
f(&y, &name);
printf("%d and %s\n", y, name);
}
Первоначально это было только тест с использованием Интс, но потом я добавил второй параметр функции ф для проверки с гольцов и теперь я не могу получить код для компиляции. Я хочу понять, но я не могу показаться.
этот код когда-либо работал, прежде чем использовать указатели? 'char name =" bob ";'? – Hogan
Ваше понимание для 'int' верное. Ваше понимание для c-строк очень, очень неправильно. В общем, я рекомендую прочитать несколько руководств по [строкам в c] (http://www.tutorialspoint.com/cprogramming/c_strings.htm). 'char' - просто 8-разрядное целое число со знаком. Строка в C представляет собой массив символов 'chars', обычно представляемых как' char [] 'или' char * ', где последний является указателем на заголовок массива' char'. – aruisdante
строка в c является указателем на char (отсюда char * mystring или char mystring []). Hogan: char - это 8-битное целое число, поэтому есть неявный перевод из char * в char и указатель усечен. Некоторым компиляторам нужны флагов, чтобы предупредить вас об этом – Lectem