ポインタ2

#include 
#include 
#include 

int main() {
    char buffer[1000] = "";
    int length;
    char *line = NULL;
    
    printf("type character and enter key");
    gets(buffer);
    length = strlen(buffer);
    if (length > 0) {
        line = (char *)malloc(length + 1);
        strcpy(line, buffer);
        printf("line = %s\n", line);
        free(line);
    }
    return 0;
}

ポインタ

ポインタはメモリーのアドレスを格納できる容器で、なおかつ、どの型のデータを指し示すかの情報を持っています。

下の例では、整数型のポインタ変数pと、整数型の変数iを宣言、iを1に初期化し、「*p」という表現で、変数iの中身を参照しています。

#include 

int main() {
    int *p, i = 1;
    p = &i;
    printf("%d\n", *p);
    return 0;
}

基本データ型

int, float, double, charの変数の大きさです。C言語には、文字列型がありません。C++はstringクラスがあります。

#include 

int main() {
    int i = 1;
    float f = 1;
    double d = 0.5;
    char c = 'a';
    
    printf("i = %d\n", i);
    printf("f = %f\n", f);
    printf("d = %f\n", d);
    printf("c = %c\n", c);
    
    printf("sizeof(i) = %d\n", sizeof(i));
    printf("sizeof(f) = %d\n", sizeof(f));
    printf("sizeof(d) = %d\n", sizeof(d));
    printf("sizeof(c) = %d\n", sizeof(c));
    
    return 0;
}
i = 1
f = 1.000000
d = 0.500000
c = a
sizeof(i) = 4
sizeof(f) = 4
sizeof(d) = 8
sizeof(c) = 1