c - 如何处理用c语言填充结构
问题描述
我在理解如何将信息调用和存储到结构中时遇到问题。
typedef struct {
char ticker[10];
double price;
} StockPrice;
typedef struct {
char ticker[10];
double shares;
} Stock;
typedef struct {
Stock myStocks[MAX_MY_STOCKS]; // MAX_MY_STOCKS is five.
double balance;
} Portfolio;
我不知道确切的措辞,但我正在处理一个结构,其中包含另一种类型的结构,并且想知道在用 C 语言编写时如何填充和打印出结构。
解决方案
由于 WedaPashi 没有介绍使用值进行初始化,我将简要解释一下。一旦你声明了一个结构
StockPrice sp;
然后现在该结构中的所有变量都有一段内存。现在所有这些变量都有“垃圾值”,这意味着它们可能是任何可能的值,我们无法可靠地知道是什么。正如他的回答中提到的,您可以使用“。”访问这些值。为了给它们赋值,例如
sp.price = 12.35;
你可以用同样的方式初始化数组,所以我们可以说
sp.ticker = {'t','i','c','k','e','r','V','A','L'};
或者在 char 数组的特殊情况下,我们可以简单地说
sp.ticker = "tickerVal";
或者,您可以一次初始化结构中的所有值,例如
StockPrice sp = {"tickerVal", 99.35};
此时 sp.price 等于 99.35,并且ticker 包含字符串“tickerVal”。重要的是要注意,一旦在结构中设置了至少一个变量的值,那么所有其他没有分配值的变量都会得到一个默认值。换句话说,一旦您设置了至少一个变量,就不会再有“垃圾值”了。
如果我们想将所有这些放在一起只是为了让您了解更复杂的初始化,我们可以这样说:
Portfolio p = {
/*first value is an array initialization of stocks*/
{
{"ticker0\0",0.0}, /*stock structs*/
{"ticker1\0",1.0}, /*stock structs*/
{"ticker2\0",2.0}, /*stock structs*/
{"ticker3\0",3.0}, /*stock structs*/
{"ticker4\0",4.0}, /*stock structs*/
{"ticker5\0",5.0}, /*stock structs*/
{"ticker6\0",6.0}, /*stock structs*/
{"ticker7\0",7.0}, /*stock structs*/
{"ticker8\0",8.0}, /*stock structs*/
{"ticker9\0",9.0} /*stock structs*/
},/*end of array of Stock*/
/*second value is double balance*/
100.99
};
推荐阅读
- sql - 为什么将 ROW_NUMBER 定义为窗口函数?
- r - 星星包:如何根据属性(文件名)定义附加维度?
- python - 如何按键分组并仅从熊猫数据框中返回最大值观察
- r - 分组的新日期列
- docker - 无法将 kafka 连接到 docker 上的模式注册表 - 意外字符('<'(代码 60))
- javascript - 如何在没有 Node.js、没有 Http Server 的情况下使用 VeeValidate 3 的语言环境消息 json 文件?
- python - Python将提取的年月设置为日期时间格式
- javascript - 用。。。来代替,包括宽度和高度
我目前正在开发一个使用表格的项目,这显然并不理想,但营销“需要”它......
我正在使用 jQuery 将所有表格转换为 DIV,它工作正常,但我需要表格的宽度和高度,如下所示:
<table border="0" width="#1" height="#2">
至:
<div style="width
- php - Findby DateTime 最近上传的文章 Symfony
- java - 如何使用drawable在本地更改RecyclerView中的图像