相关疑难解决方法(0)

如何使用字符串(字符数组)初始化字符指针,但是不使用整数数组的int指针?

如何char用字符串(字符数组)初始化指针,但int指针不是整数数组?

当我试着这个

int* a={1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误说法

错误:标量对象'a'在初始化程序中需要一个元素

但,

char* name="mikhil"
Run Code Online (Sandbox Code Playgroud)

工作得很好.

c c++ arrays string pointers

6
推荐指数
2
解决办法
722
查看次数

在C中,为什么不能将整数值赋给int*,就像将字符串值赋给char*一样?

我一直在浏览网站,但尚未找到答案.

用一个例子来解释这个问题是最容易的(至少对我来说).

我不明白为什么这是有效的:

#include <stdio.h>

int main(int argc, char* argv[])
{
  char *mystr = "hello";
}
Run Code Online (Sandbox Code Playgroud)

但是这会产生一个编译器警告("初始化使整数从没有强制转换的整数中生成"):

#include <stdio.h>

int main(int argc, char* argv[])
{
  int *myint = 5;
}
Run Code Online (Sandbox Code Playgroud)

我对第一个程序的理解是创建一个名为mystr的变量,类型为pointer-to-char,其值是字符串文字"hello"的第一个字符('h')的地址.换句话说,使用此初始化,您不仅可以获取指针,还可以定义指针指向的对象(在本例中为"hello").

那么,为什么int *myint = 5;看起来似乎没有实现与此类似的东西,即创建一个名为myint的变量类型指针指向int,其值是值'5'的地址?为什么这个初始化既不给我指针也定义指针所指向的对象?

c int pointers char

5
推荐指数
1
解决办法
3943
查看次数

标签 统计

c ×2

pointers ×2

arrays ×1

c++ ×1

char ×1

int ×1

string ×1